using UnityEngine; using System.Collections; namespace TMPro.Examples { public class TMPro_InstructionOverlay : MonoBehaviour { public enum FpsCounterAnchorPositions { TopLeft, BottomLeft, TopRight, BottomRight }; public FpsCounterAnchorPositions AnchorPosition = FpsCounterAnchorPositions.BottomLeft; private const string instructions = "Camera Control - <#ffff00>Shift + RMB\n</color>Zoom - <#ffff00>Mouse wheel."; private TextMeshPro m_TextMeshPro; private TextContainer m_textContainer; private Transform m_frameCounter_transform; private Camera m_camera; //private FpsCounterAnchorPositions last_AnchorPosition; void Awake() { if (!enabled) return; m_camera = Camera.main; GameObject frameCounter = new GameObject("Frame Counter"); m_frameCounter_transform = frameCounter.transform; m_frameCounter_transform.parent = m_camera.transform; m_frameCounter_transform.localRotation = Quaternion.identity; m_TextMeshPro = frameCounter.AddComponent<TextMeshPro>(); m_TextMeshPro.font = Resources.Load<TMP_FontAsset>("Fonts & Materials/LiberationSans SDF"); m_TextMeshPro.fontSharedMaterial = Resources.Load<Material>("Fonts & Materials/LiberationSans SDF - Overlay"); m_TextMeshPro.fontSize = 30; m_TextMeshPro.isOverlay = true; m_textContainer = frameCounter.GetComponent<TextContainer>(); Set_FrameCounter_Position(AnchorPosition); //last_AnchorPosition = AnchorPosition; m_TextMeshPro.text = instructions; } void Set_FrameCounter_Position(FpsCounterAnchorPositions anchor_position) { switch (anchor_position) { case FpsCounterAnchorPositions.TopLeft: //m_TextMeshPro.anchor = AnchorPositions.TopLeft; m_textContainer.anchorPosition = TextContainerAnchors.TopLeft; m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(0, 1, 100.0f)); break; case FpsCounterAnchorPositions.BottomLeft: //m_TextMeshPro.anchor = AnchorPositions.BottomLeft; m_textContainer.anchorPosition = TextContainerAnchors.BottomLeft; m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(0, 0, 100.0f)); break; case FpsCounterAnchorPositions.TopRight: //m_TextMeshPro.anchor = AnchorPositions.TopRight; m_textContainer.anchorPosition = TextContainerAnchors.TopRight; m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(1, 1, 100.0f)); break; case FpsCounterAnchorPositions.BottomRight: //m_TextMeshPro.anchor = AnchorPositions.BottomRight; m_textContainer.anchorPosition = TextContainerAnchors.BottomRight; m_frameCounter_transform.position = m_camera.ViewportToWorldPoint(new Vector3(1, 0, 100.0f)); break; } } } }